Tags
Authors
The JPQL select new
syntax originated in the earliest days of Hibernate, providing a way to package a query projection list into a Java object.
This was before Java had generics or record types, so you would use it like this:
Several people have recently asked me how to do "specifications" in Hibernate or in Jakarta Data. I believe this idea comes from Spring Data, where a repository method may be passed a function that applies programmatic restrictions to the query result via the JPA Criteria API.
We just published Hibernate Search 8.0.0.Alpha3, the third alpha release of the next major version of Hibernate Search.
This version includes various adjustments that address recent changes in the Hibernate ORM 7.0.0.Beta5 release.
We are pleased to announce the release of Hibernate Search 7.2.3.Final.
This release brings a bug fix and dependency upgrades.
We just published Hibernate Search 8.0.0.Alpha2, the second alpha release of the next major version of Hibernate Search.
While testing the previous alpha, we’ve identified a few things that had to be adjusted and included them in this version.
It also upgrades Lucene and Hibernate ORM dependencies and includes compatibility with the latest Elasticsearch and OpenSearch versions.
The Hibernate team is ecstatic to report that we have successfully relicensed Hibernate ORM under the Apache 2.0 license! As discussed previously, this decision was solely about opening up wider acceptance amongst Apache/Jakarta projects and other places that (for whatever reasons) disallow the LGPL license.
This was a massive effort on the part of many people and took nearly 2 years to complete. We are grateful to all the contributors who explicitly agreed to allow the relicensing of their contributions - thank you!
[ ... ]
Ideas are cheap
I often find myself in the slightly uncomfortable position of playing gatekeeper. Someone comes along with some good idea, and I have to be the asshole who pulls their idea apart, or ultimately winds up saying "no". I’m acutely aware that this often leaves the impression of me being resistant to new ideas, or change, or whatever, but people who know me well know this isn’t the case. So let’s think about why gate-keeping is necessary, and what it means to do it well.
Let me begin by saying that good ideas are cheap. On an average week I have one or two good ideas about how to improve Hibernate, or Jakarta Persistence, or Jakarta Data, and when I’m in one of those periods where I’m really focussed on this stuff — which means I’m thinking about persistence 24 hours a day, including when I’m eating and sleeping, work/life balance a la mierda — it’s more like ten good ideas a day.
Naturally, upon reflection, it turns out that nine out of ten of my "good" ideas are actually rubbish.
Generously, one in ten of the remaining tenth ultimately get implemented in Hibernate.
And of these survivors, I propose many fewer than a tenth for inclusion in the Persistence or Data specifications.
Some of those proposals get knocked down by the rest of the group, or are transformed into something almost unrecognizable.
That is to say, I need to generate thousands of ideas to get one new feature into the platform, and the process from "idea" to specification change typically takes years, or in extreme cases even decades (looking at you, StatelessSession
).
Hibernate Reactive 3.0.0.Beta2 is now available!
This release is compatible with Hibernate ORM 7.0.0.Beta4, and upgrades the Vert.x SQL client to 4.5.13.
It also contains a couple of bug fixes:
The full list of changes is available on GitHub.
The fourth beta release of Hibernate 7 is now available.
Along with many bugfixes and minor improvements, this release features the following enhancements:
-
The brand-new
Restriction
,Path
, andRange
APIs make it easy to add programmatic restrictions to HQL queries or Jakarta Data repository methods in a completely type-safe way. -
The package
org.hibernate.graph
was completely re-engineered, fixing a number of long-standing issues with our implementation of the Jakarta PersistenceEntityGraph
API. -
StatelessSession
is now able to make use of the second-level cache, reflecting the changing role of this very important API in the Hibernate ecosystem. -
Reactive repositories backed by Hibernate Reactive are now a documented feature of Hibernate Data Repositories.
-
The
hibernate-jfr
module was enhanced to send more events to Java Flight Recorder. -
HQL now provides portable
sha()
,md5()
, andhex()
functions. -
Hibernate Processor now features much better support for inner classes.
Hibernate Reactive 2.4.5.Final is now available!
This release is compatible with Hibernate ORM 6.6.7.Final, and upgrades the Vert.x SQL client to 4.5.12.Final.
It also contains a couple of bug fixes:
The full list of changes is available on GitHub.